#ifndef __NJGIS_INJSERVICERECORD_H__
#define __NJGIS_INJSERVICERECORD_H__

#include <vector>
#include <string>

#include "INxService.h"
#include "INxDataConfiguration.h"
#include "INxModelService.h"
#include "INxRunningLog.h"


namespace NJGIS
{
    namespace SERVICE
    {
        typedef enum
        {
            MSRS_UNFINISHED = 0,
            MSRS_FINISHED = 1,
            MSRS_ERROR = 2
        } NjRecordStatus;


        class INjModelServiceRecord : public virtual INjService
        {
        public:
            virtual const char* getID() = 0;

            virtual const char* getModelServiceID() = 0;

            virtual const char* getStartDatetime() = 0;

			virtual const char* getGUID() = 0;

            virtual int getTimeSpan() = 0;

            virtual INjDataConfiguration* getInputData() = 0;

            virtual INjDataConfiguration* getOutputData() = 0;

			virtual NjRecordStatus getStatus() = 0;

			virtual const char* getRunningInfo_Standout() = 0;

			virtual const char* getRunningInfo_Standerr() = 0;

			virtual const char* getRunningInfo_Invokeerr() = 0;

            virtual std::vector<INjRunningLog*>* getLogs() = 0;

			virtual void wait4Finished() = 0;

            virtual int refresh() = 0;
        };
    }
}

#endif